The use of video streaming is rapidly on the increase. Streamed videos tend to be compressed and have a Variable Bit Rate (VBR). Edge-of-network servers often are used to stream a large number of videos, e.g., via a caching proxy that serves cached videos to end users. Many popular video streaming services use TCP (Transmission Control Protocol) as the transport protocol, as it provides reliability, congestion control and traversal across firewalls. The effective rate allocated by TCP to competing streams sharing the same bottleneck link or backhaul depends on network characteristics of the streams, such as the loss rate and Round Trip Time (RTT). However, video service providers typically seek to share a bottleneck link according to end-user quality-of-experience characteristics, such as the number of times a video player buffer under-flows (i.e., the number of video playout stalls). This, along with other conventional solutions, seldom result in optimal streaming and can significantly restrict the number, rate and quality of streams that indeed end up being transported.